home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / C and C++ / Utilities / Appsprites / APPMAKER CODE / MODIFIED APPMAKER CODE / SetSpeed.c < prev   
Encoding:
C/C++ Source or Header  |  1993-07-11  |  6.4 KB  |  236 lines  |  [TEXT/KAHL]

  1. /* SetSpeed.c -- Modal dialog */
  2. /* Created 7/11/93 11:42 AM by AppMaker */
  3.  
  4. #include <Types.h>
  5. #include <Quickdraw.h>
  6. #include <Controls.h>
  7. #include <Dialogs.h>
  8. #include <Events.h>
  9. #include <Lists.h>
  10. #include <Menus.h>
  11. #include <TextEdit.h>
  12. #include "ResourceDefs.h"
  13. #include "Miscellany.h"
  14. #include "DialogAids.h"
  15. #include "WindowAids.h"
  16. #include "SetSpeed.h"
  17. #include "Globals.h"
  18.  
  19. #define OKButton        1 
  20. #define CancelButton    2 
  21. #define Sprite1Label    3 
  22. #define Sprite2Label    4 
  23. #define Sprite3Label    5 
  24. #define Sprite4Label    6 
  25. #define Sprite5Label    7 
  26. #define Sprite6Label    8 
  27. #define Slider9            9 
  28. #define Slider10        10 
  29. #define Slider11        11 
  30. #define Slider12        12 
  31. #define Slider13        13 
  32. #define SetAllSpeedsFromSprite1Radio    14 
  33. #define SetSpeedsIndividuallyRadio    15 
  34. #define Slider16        16 
  35. #define Picture17        17 
  36.  
  37. static pascal void Slider9Action        (short        newValue,
  38.                                          short        oldValue);
  39. static pascal void Slider10Action        (short        newValue,
  40.                                          short        oldValue);
  41. static pascal void Slider11Action        (short        newValue,
  42.                                          short        oldValue);
  43. static pascal void Slider12Action        (short        newValue,
  44.                                          short        oldValue);
  45. static pascal void Slider13Action        (short        newValue,
  46.                                          short        oldValue);
  47. static pascal void Slider16Action        (short        newValue,
  48.                                          short        oldValue);
  49.  
  50. /*----------*/
  51. static pascal void Slider9Action        (short        newValue,
  52.                                          short        oldValue)
  53. {
  54. } /*Slider9Action*/
  55.  
  56. /*----------*/
  57. static pascal void Slider10Action        (short        newValue,
  58.                                          short        oldValue)
  59. {
  60. } /*Slider10Action*/
  61.  
  62. /*----------*/
  63. static pascal void Slider11Action        (short        newValue,
  64.                                          short        oldValue)
  65. {
  66. } /*Slider11Action*/
  67.  
  68. /*----------*/
  69. static pascal void Slider12Action        (short        newValue,
  70.                                          short        oldValue)
  71. {
  72. } /*Slider12Action*/
  73.  
  74. /*----------*/
  75. static pascal void Slider13Action        (short        newValue,
  76.                                          short        oldValue)
  77. {
  78. } /*Slider13Action*/
  79.  
  80. /*----------*/
  81. static pascal void Slider16Action        (short        newValue,
  82.                                          short        oldValue)
  83. {
  84. } /*Slider16Action*/
  85.  
  86. /*----------*/
  87. static pascal Boolean FilterSetSpeed    (DialogPtr        whichDialog,
  88.                                          EventRecord    *event,
  89.                                          short            *itemHit)
  90. {
  91.     Boolean                filtered;
  92.     SetSpeedRecPtr        data;
  93.  
  94.  
  95.     filtered = false;
  96.     if (!filtered) {
  97.         filtered = FilterScroll (event, Slider9,
  98.                                 (ScrollProcPtr) &Slider9Action, itemHit);
  99.     }
  100.     if (!filtered) {
  101.         filtered = FilterScroll (event, Slider10,
  102.                                 (ScrollProcPtr) &Slider10Action, itemHit);
  103.     }
  104.     if (!filtered) {
  105.         filtered = FilterScroll (event, Slider11,
  106.                                 (ScrollProcPtr) &Slider11Action, itemHit);
  107.     }
  108.     if (!filtered) {
  109.         filtered = FilterScroll (event, Slider12,
  110.                                 (ScrollProcPtr) &Slider12Action, itemHit);
  111.     }
  112.     if (!filtered) {
  113.         filtered = FilterScroll (event, Slider13,
  114.                                 (ScrollProcPtr) &Slider13Action, itemHit);
  115.     }
  116.     if (!filtered) {
  117.         filtered = FilterScroll (event, Slider16,
  118.                                 (ScrollProcPtr) &Slider16Action, itemHit);
  119.     }
  120.     
  121.     if (!filtered) {
  122.         filtered = StandardFilter (whichDialog, event, itemHit);
  123.     }
  124.     return (filtered);
  125. } /*FilterSetSpeed*/
  126.  
  127. /*----------*/
  128. Boolean GetSetSpeed (SetSpeedRec        *SetSpeed)
  129. {
  130.     DialogPtr        theDialog;
  131.     GrafPtr            savePort;
  132.     Boolean            result;
  133.     Boolean            done;
  134.     short            itemNr;
  135.     register SetSpeedRecPtr    info;
  136.  
  137.     GetPort (&savePort);
  138.     InitCursor ();
  139.     theDialog = GetNewDialog (SetSpeedID, nil, (WindowPtr) -1L);
  140.     SetPort (theDialog);
  141.     info = SetSpeed;
  142.  
  143.     info->Slider9Value = kMaxSpriteTime - cur->moveSpeedArray[0];
  144.     info->Slider10Value = kMaxSpriteTime - cur->moveSpeedArray[1];
  145.     info->Slider11Value = kMaxSpriteTime - cur->moveSpeedArray[2];
  146.     info->Slider12Value = kMaxSpriteTime - cur->moveSpeedArray[3];
  147.     info->Slider13Value = kMaxSpriteTime - cur->moveSpeedArray[4];
  148.     info->Slider16Value = kMaxSpriteTime - cur->moveSpeedArray[5];
  149.     
  150.     info->SetAllSpeedsFromSprite1Choice = cur->SetAllSpeeds;
  151.     
  152.     SetScrollItem (Slider9, info->Slider9Value, 0, kMaxSpriteTime, 10);
  153.     SetScrollItem (Slider10, info->Slider10Value, 0, kMaxSpriteTime, 10);
  154.     SetScrollItem (Slider11, info->Slider11Value, 0, kMaxSpriteTime, 10);
  155.     SetScrollItem (Slider12, info->Slider12Value, 0, kMaxSpriteTime, 10);
  156.     SetScrollItem (Slider13, info->Slider13Value, 0, kMaxSpriteTime, 10);
  157.     SetScrollItem (Slider16, info->Slider16Value, 0, kMaxSpriteTime, 10);
  158.  
  159.     SetRadio (SetAllSpeedsFromSprite1Radio, info->SetAllSpeedsFromSprite1Choice);
  160.     
  161.     ShowWindow (theDialog);
  162.     OutlineButton (1);
  163.     done = false;
  164.     while (!done) {
  165.         
  166.         ModalDialog (FilterSetSpeed, &itemNr);
  167.         switch (itemNr) {
  168.             case OKButton:
  169.                     result = true;
  170.                     done = true;
  171.                     if (info->SetAllSpeedsFromSprite1Choice == 1)
  172.                     {
  173.                     for (cur->spriteNum = 0; cur->spriteNum < kNumberOfSprites; cur->spriteNum++)
  174.                         {
  175.                         cur->moveSpeedArray[cur->spriteNum] = kMaxSpriteTime - info->Slider16Value;
  176.                         }
  177.                     }
  178.                     else
  179.                     {
  180.                         cur->moveSpeedArray[0] = kMaxSpriteTime - info->Slider9Value;
  181.                         cur->moveSpeedArray[1] = kMaxSpriteTime - info->Slider10Value;
  182.                         cur->moveSpeedArray[2] = kMaxSpriteTime - info->Slider11Value;
  183.                         cur->moveSpeedArray[3] = kMaxSpriteTime - info->Slider12Value;
  184.                         cur->moveSpeedArray[4] = kMaxSpriteTime - info->Slider13Value;
  185.                         cur->moveSpeedArray[5] = kMaxSpriteTime - info->Slider16Value;
  186.                     }
  187.                     cur->SetAllSpeeds = info->SetAllSpeedsFromSprite1Choice;
  188.  
  189.                 break;
  190.             case CancelButton:
  191.                     result = false;
  192.                     done = true;
  193.                 break;
  194.             case Slider9:
  195.                     DoScrollItem (itemNr, &info->Slider9Value);
  196.                 break;
  197.             case Slider10:
  198.                     DoScrollItem (itemNr, &info->Slider10Value);
  199.                 break;
  200.             case Slider11:
  201.                     DoScrollItem (itemNr, &info->Slider11Value);
  202.                 break;
  203.             case Slider12:
  204.                     DoScrollItem (itemNr, &info->Slider12Value);
  205.                 break;
  206.             case Slider13:
  207.                     DoScrollItem (itemNr, &info->Slider13Value);
  208.                 break;
  209.             case SetAllSpeedsFromSprite1Radio:
  210.             case SetSpeedsIndividuallyRadio:
  211.                     DoRadio (SetAllSpeedsFromSprite1Radio, itemNr, &info->SetAllSpeedsFromSprite1Choice);
  212.                 break;
  213.             case Slider16:
  214.                     DoScrollItem (itemNr, &info->Slider16Value);
  215.                 break;
  216.             
  217.         } /* switch */
  218.         
  219.     if (info->SetAllSpeedsFromSprite1Choice == 1)
  220.     {
  221.     SetScrollItem (Slider9, info->Slider16Value, 0, kMaxSpriteTime, 10);
  222.     SetScrollItem (Slider10, info->Slider16Value, 0, kMaxSpriteTime, 10);
  223.     SetScrollItem (Slider11, info->Slider16Value, 0, kMaxSpriteTime, 10);
  224.     SetScrollItem (Slider12, info->Slider16Value, 0, kMaxSpriteTime, 10);
  225.     SetScrollItem (Slider13, info->Slider16Value, 0, kMaxSpriteTime, 10);
  226.     }
  227.  
  228.     } /* while */
  229.     
  230.     DisposDialog (theDialog);
  231.     SetPort (savePort);
  232.     return (result);
  233. } /*GetSetSpeed*/
  234.  
  235. /* SetSpeed */
  236.